# -*- coding: UTF-8 -*-
from Position import *
from ConstantesFrogger import *
import copy
import time

#! Réseau, attention au références. 'HAUT' sur cl1 is not 'HAUT' sur serveur
HAUT = 'HAUT'
BAS = 'BAS'
GAUCHE = 'GAUCHE'
DROITE = 'DROITE'

class Joueur: 
    def __init__(self,nom, pos, id, largeur=1, hauteur=1):
        self.nom = nom
        self.posDepart = pos
        self.gauche = False
        self.droite = False
        self.largeur = largeur
        self.hauteur = hauteur
        self.joueurDansAnse = False
        self.couleur = ConstantesFrogger.couleurs[id%4]
        self.lastCheckIn = time.time()
        
        self.isFrozen = False
        
        self.score=0
        self.niveau=1
        self.anses=0
        self.ansesTotal = 0
        
        self.allerAuDepart()
        
    def allerAuDepart(self):
        self.pos = copy.copy(self.posDepart)
        self.resetDirections()
        
    def move(self, status, direction):
        if not self.isFrozen:
            if direction == HAUT:
                self.pos.y+=1
            elif direction == BAS:
                self.pos.y-=1
            elif direction == DROITE:
                self.droite = status
            elif direction == GAUCHE:
                self.gauche = status
    
    def bouger(self):
        if not self.isFrozen:
            depX = 0
            if self.droite:
                depX += 0.2
            if self.gauche:
                depX -= 0.2
            self.pos.x += depX
            
    def monterNiveau(self):
        self.anses = 0
        self.niveau +=1
        self.score += ConstantesFrogger.monterNiveau
        self.allerAuDepart()
    
    def entrerAnse(self):
        self.anses += 1
        self.ansesTotal += 1
        self.joueurDansAnse = True
        self.ajouterPoints(ConstantesFrogger.ENTRER_ANSE)
        
    def getIsFrozen(self):
        return self.isFrozen
    
    def creve(self):
        print "TU CRÈVE"
        nouveauScore = self.score-(ConstantesFrogger.mourrir)
        if nouveauScore > 0:
            self.score=nouveauScore
        else:
            self.score = 0
            
        self.isFrozen = True

        self.resetDirections()

        #retourner au d�part
        self.allerAuDepart()
    
    def resetDirections(self):
        self.gauche = False
        self.droite = False
        
    def ajouterPoints(self, points):
        self.score += points
    
    def checkIn(self):
        self.lastCheckIn = time.time()
        